有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为一个盒子创建一个类。(爪哇)

嗨,我在班上布置了一个作业:

  1. 实现一个名为Box的类,该类将具有以下属性和方法: 整数长度、宽度、高度 字符串颜色

  2. 构造函数方法:

    • 将3个整数初始化为10,8,6
    • 将颜色初始化为“黑色”
  3. 4个属性中的每一个都有一个setter和getter方法
  4. 一种求盒子体积的方法
  5. 获取长方体表面积的方法(所有六个面)

我有我所有的长度、宽度和颜色的接受器和接受器。我现在唯一的问题是,如果我将值设置为不同的值,它将无法正确计算体积

它只接受初始化的值。有什么想法吗?下面是我的课程代码。我可以举个例子。设置长度(7),它不打印总数7*8*6,而是打印总数10*8*6

    public class Box
    {
      private int height = 6;

      public void se(int height){
      this.height=height;
     } 
      public int getHeight(){
         return height;
     } 
    private int width = 8;
    public void setWidth(int width){
      this.width=width;
    } 
      public int getWidth(){
         return width;
    } 
    private int length= 10;
    public void setLength(int length){
      this.length=length;
    } 
      public int getLength(){
         return length;
    }
     private String color="Black";
     public void setColor(String color){
      this.color=color;
    } 
     public String getColor(){
      return color;
    }
    private int vol=length*width*height;
      public void setVol(int vol){
      this.vol=vol;

    }
    public int getVol(){
       return vol;
      }
  }

共 (2) 个答案

  1. # 1 楼答案

    您需要为vol创建一个getter函数

    例如

    public int getVol () {
       vol=length*width*height;
       return vol;
    }
    

    当然,中间vol的设置是不必要的。 你可以

    return length*width*height;
    

    这可以确保当前vol的计算始终正确

  2. # 2 楼答案

    去掉vol属性和setVolsetter;这不是该类规范的一部分,也是问题的根本原因。重写getVol以根据每次调用时的长度、宽度和高度计算体积

    您当前的设计不起作用,因为每当lengthwidthheight发生更改时,vol不会重新计算。您可以保留当前的字段集,并重写维度设置器,以便在每次调用vol属性时重新计算该属性。这将加快getVolgetter方法的速度,但代价是类设计更复杂,setter方法更慢。这是一个权衡,你可以做,也可以不做,这是你认为合适的。但是,您需要去掉setVol方法,因为当您设置卷时,无法知道如何设置维度以使值一致